/*
 * task_communication.h
 *
 *  Created on: Jul 23, 2024
 *      Author: citunhk
 */

#ifndef DATA_PUBLIC_H_
#define DATA_PUBLIC_H_

#include "../../../03_FML/OS/fml_task.h"
#include "../../../03_FML/lvgl/src/core/lv_obj.h"
#include "../../../03_FML/lvgl/src/core/lv_obj.h"
#include "../../../03_FML/lvgl/src/core/lv_disp.h"
#include "../../../03_FML/lvgl/src/core/lv_obj_style.h"
#include "../../../03_FML/lvgl/src/widgets/lv_label.h"
#include "../../../03_FML/lvgl/src/widgets/lv_btn.h"
#include "../../../03_FML/lvgl/src/font/lv_symbol_def.h"
#include "../../../03_FML/lvgl/lvgl.h"
#include "../../../03_FML/lvgl/examples/porting/lv_port_disp_template.h"
#include "../../../03_FML/lvgl/examples/porting/lv_port_indev_template.h"
#include "../../../03_FML/LIST/wiip_list.h"
#include "../../../04_DRI/DRI_Init.h"

/* 特殊字体 */
LV_FONT_DECLARE(lv_font_montserrat_160)  //主温度显示字体
LV_FONT_DECLARE(daojin100)
LV_FONT_DECLARE(daojin50)
LV_FONT_DECLARE(daojin36)
LV_FONT_DECLARE(daojin24)
/* 特殊颜色 */
#define COLOUR_WIIP_BLUE                 (0x003a8c)        /* WIIP蓝色 */
#define COLOUR_WIIP_GREEN                (0x009944)        /* WIIP绿色 */
#define COLOUR_WIIP_ORANGE               (0xed711f)        /* WIIP橘色 */
#define COLOUR_WIIP_GREY                 (0x9fa0a0)        /* WIIP灰色 */
#define HMI_TYPE   (0x1043)     //屏幕类型0x0043昆仑通泰4.3寸  0x1043自研4.3  0x0070昆仑通态7寸  0x0100昆仑通态10寸

LV_FONT_DECLARE(puhui24) /* 声明字体 */

#define INFO_GROUP_QTY	6/* 信息组数量 */
#define CURVEDATASUM 3600  //曲线显示数据数量

 /* 界面名称 */
enum interface
{
	DIF_NULL,  //无显示界面
	DIF_INIT,  //初始化界面
	DIF_MAIN,  //主界面
	DIF_MENU,  //菜单界面
	DIF_CURVE,  //曲线界面
	DIF_MESS,  //报警消息界面
	DIF_FUNC,  //功能设置界面
	DIF_DISP,  //显示设置界面
	DIF_ALARM,  //报警设置界面
	DIF_COMM,  //通讯设置界面
	DIF_PRO,  //高级设置界面
	DIF_ABOUT,  //关于本机界面
	DIF_FAC,  //工厂参数界面
	DIF_STAN, //待机界面
};
typedef enum
{
	RW_READY,		     		// 准备就绪
	RW_READ_USB_MATERIAL,	    // 读取USB中的素材
	RW_WRITE_USB_DATA,		    // 向USB中导入一包数据
	RW_EXPORT_USB_DATA,			// 导出数据到USB
//	RW_READ_NAND_MATERIAL,		// 读取NAND中素材
//	RW_READ_NAND_SCREEN,		// 读取NAND中屏幕参数
//	RW_READ_NAND_ALARM,	        // 从NAND读出报警记录
	RW_READ_NAND_INIT,			// 读取nandFLASH中的初始化数据（字库、图库、屏幕参数、报警记录）
	RW_READ_NAND_CURVE,		    // 从NAND读出曲线所需运行数据
	RW_READ_NAND_PACK,		    // 从NAND读出USB导出所需运行数据
	RW_WRITE_NAND_MATERIAL,		// 向NAND写入字体、图库
	RW_WRITE_NAND_SCREEN,		// 向NAND写入屏幕参数
	RW_WRITE_NAND_RUN,			// 向NAND写入运行数据
	RW_WRITE_NAND_ALARM,	    // 向NAND写入报警记录
}RW_State;
/* 界面显示切换结构体 */
struct display
{
	enum interface New;  //此次显示界面
	enum interface Old;  //上次显示界面
	enum interface Ret;  //返回界面
	enum interface Login;  //准备登录界面
};
/* 程序控温记录结构体 */
typedef struct tableRecort_t{
	float program_SP;		        //程序目标温度
	uint16_t program_Step;          //程序当前序号
	uint16_t program_Time_ThisStep; //程序当前时间设置
}tableRecort_t;
/* 键盘使能结构体 */
typedef struct kb_userData_t{
	uint8_t store_enable;
	void * value;
}kb_userData_t;
/* 标题栏结构体 */
struct title
{
	enum interface returnDisp;  //返回界面
	char str[9];  //当前界面字符串  固定长度
};

/* 曲线数据结构体 */
struct chartData
{
    Time_TypeDef chartTime;  //曲线时间

    float tempSV;   //主温度设置值
    float tempPV1;  //主温度实测值
    float tempPV2;  //辅温度实测值

    float flowSV;   //流量设置值
    float flowPV;   //流量实测值

    float pressSV;   //出液压力设置值
    float pressPV1;  //出液压力实测值
    float pressPV2;  //回液压力实测值
};

/* 通讯参数库-控制主板工厂参数结构体（不保存） */
#pragma pack(2)
struct boardSysteam{
	//1000
	float HL_TempPV;//温度测量上限1
	float LL_TempPV;//温度测量下限1
	float HL_TempSV1;//温度控制上限1
	float LL_TempSV1;//温度控制下限1
	uint16_t regAddr1008;
	uint16_t regAddr1009;
	uint16_t regAddr1010;
	uint16_t regAddr1011;
    float SV_Alarm_Press1;//从机氟压1报警下限值
    uint16_t SV_AlarmTime_Press1;//从机氟压1报警确认时间
    float SV_Alarm_Press2;//从机氟压2报警上限值
    uint16_t SV_AlarmTime_Press2;//从机氟压2报警确认时间
    uint16_t regAddr1018;
    uint16_t regAddr1019;
    //1020
	float HL_FlowPV;//流量测量上限
	float LL_FlowPV;//流量测量下限
	float HL_FlowSV;//流量控制上限
	float LL_FlowSV;//流量控制下限
	float HL_TempFF;//保护温度上限
	float LL_TempFF;//保护温度下限
	float LL_FlowFF;//冷冻水保护流量下限
    uint16_t AlarmStartTime_Temp;//报警温度检测延时
    uint16_t AlarmOutTime_Temp;//报警温度确认时长
	float HL_PressPV;//压力测量上限1
	float LL_PressPV;//压力测量下限1
	//1040
	float HL_PressSV;//压力控制上限
	float LL_PressSV;//压力控制下限
	float HL_DI_PV;//电阻率测量上限
	float LL_DI_PV;//电阻率测量下限
	float K_FlowPulse;//流量脉冲系数1
	float K_FlowPulse2;//流量脉冲系数2
	float D_Value_CT;//启停式压机控温回差值
    uint16_t Fre_Pump_MAX;  //水泵变频器最大操作频率
    uint16_t Fre_Pump_MIN;  //水泵变频器最小操作频率
	uint16_t Digital_In1_Definition;//数字量输入1定义  DIN4
	uint16_t Digital_In2_Definition;//数字量输入2定义  DIN5
	uint16_t Digital_Out1_Definition;//数字量输出1定义  KA3
	uint16_t Digital_Out2_Definition;//数字量输出2定义  KA2
	//1060
    uint16_t regAddr1060;
    uint16_t Type_CompNumber;//压缩机级数设置
    uint16_t Tepy_Comp;//压缩机控制模式设置
    uint16_t Tepy_Cool;//风/水冷机设置
    uint16_t regAddr1064;
	uint16_t RunTime_Chiller;//维护设备运行时长
    uint16_t Time_RunDelayComp;  //启动压缩机延时时间
    uint16_t ES_Temp2;  //辅温度使能
    uint16_t ES_TempAmbi;//环境温度使能
    uint16_t ES_Flow;//流量传感器选择
    uint16_t ES_Press_Out;  //出液压力检测使能
    uint16_t ES_Press_In;  //回液压力检测使能
    uint16_t ES_DI;  //水质检测使能
    uint16_t ES_COWFlowLL;  //冷却水流量下限检测使能
    uint16_t ES_InFlowLL;  //低流量检测使能
    uint16_t ES_FlowContr;//流量控制模式
    uint16_t ES_DI_Contr;  //水质控制使能
    uint16_t ES_ReturnContr;//自动回液使能
	int16_t SV_Temp_OpenLowValve;  //打开低温制冷阀温度
	int16_t SV_Temp_CloseLowValve;  //关闭低温制冷阀温度
	//1080
	int16_t SV_Temp_OpenHighValve;  //打开高温制冷阀温度
	int16_t SV_Temp_CloseHighValve;  //关闭高温制冷阀温度
    uint16_t Sensor_type;	  //进出液压力信号类型
    uint16_t Type_HL_TempFF;  //保护温度上限模式
    uint16_t Type_LL_TempFF;  //保护温度下限模式
    uint16_t Type_LL_Flow;//冷冻水保护流量下限检测模式
    uint16_t Type_LL_Level;//低液位报警检测模式
    uint16_t Type_Heater;//加热模式设置
    uint16_t AlarmStartTime_Flow;//报警流量检测延时
    uint16_t AlarmOutTime_Flow;//报警流量确认时长
    uint16_t gSTATE_TempCalibration;  //工厂温度校准状态  bit0-bit9:按键1-按键10
	uint16_t pptAD1[10];  //温度1校准  流量传感器校准  pptAD1[0]-pptAD1[7]:温度1校准  pptAD1[8]-pptAD1[9]:流量传感器校准
	//1101
	uint16_t regAddr1101_1119[19];
	//1120
    uint16_t regAddr1120;
    uint16_t regAddr1121;
    uint16_t regAddr1122;
    uint16_t Digital_In3_Definition;//数字量输入3定义  DIN3
    uint16_t Digital_In4_Definition;//数字量输入4定义  DIN7
    uint16_t Com_Mode;//通讯协议选择
    uint16_t ES_LED;//灯带控制使能
    uint16_t Num_LED;//灯珠数量
    uint16_t regAddr1128;
    uint16_t regAddr1129;
    uint16_t EEV1_Min;//制冷电子膨胀阀最小开度
    uint16_t regAddr1131;
    uint16_t ES_Te;//蒸发温度传感器使能
    uint16_t ES_Tc;//冷凝温度传感器使能
    uint16_t ES_To;//出气温度传感器使能
    uint16_t ES_Pc;//冷凝压力传感器使能
    uint16_t EW_Pc;//冷凝压力开关使能
    uint16_t ES_Ho;//加热器开关使能
    uint16_t Type_Level;
    uint16_t regAddr1139;
	//1140
    uint16_t ES_EEV3;  //高温辅助制冷电子膨胀阀使能
    float Tup1;  //高温辅助制冷电子膨胀阀上限温度1
    float Tup2;  //高温辅助制冷电子膨胀阀上限温度2
    float Tdown1;  //高温辅助制冷电子膨胀阀下限温度1
    float Tdown2;  //高温辅助制冷电子膨胀阀下限温度2
    uint16_t regAddr1149;
    uint16_t regAddr1150;
    float HL_TempPV_Te1;//蒸发温度报警上限值1
    float LL_TempPV_Te1;//蒸发温度报警下限值1
    float HL_TempPV_To1;//出气温度报警上限值1
    float LL_PassPV_Te1_nm;//氟压平衡低压报警值
    uint16_t Type_Press1;//蒸发压力下限设置模式
	//1160
    float SV_Alarm_Press1_2;//从机氟压1报警上限值
    //1162
	uint16_t regAddr1162_1165[4];
	float SV_Temp_Diff;		//液温与蒸发温度差值
	float SV_Open_And;		//制冷阀与庞统阀开度和
	//1170
	uint16_t PumpType;      //水泵变频器类型
	uint16_t Digital_Out3_Definition;//数字量输出3定义
	float PressAlarm_LL;    // 出液压力下限
	uint16_t regAddr1174_1199[26];
};
#pragma pack()

/* 通讯参数库-控制主板用户参数/运行状态结构体（不保存） */
#pragma pack(2)
struct boardService{
	/* 用户保存参数与运行状态（读写部分） */
	//100
	union
	{
		uint16_t rState_Chiller;//设备状态组
		struct{
			uint8_t Run_State : 1;  //运行状态
			uint8_t bit1 : 1;  //预留
			uint8_t ES_Buzzer : 1;  //设备报警消音
			uint8_t AlarmReset : 1;  //设备报警复位
			uint8_t BuzzerFlag_Ctl : 1;  //蜂鸣器使能标志
			uint8_t bit5 : 1;  //预留
			uint8_t bit6 : 1;  //预留
			uint8_t bit7 : 1;  //预留
			uint8_t LastState_Comp : 1;  //压机启停状态
			uint8_t LastState_Pump : 1;  //水泵启停状态
			uint8_t State_Cool : 1;  //制冷启停状态
			uint8_t LastState_Heater : 1;  //上次加热启停状态
			uint8_t EQUWaterin : 1;  //内外循环状态
			uint8_t bit13 : 1;  //预留
			uint8_t bit14 : 1;  //预留
			uint8_t bit15 : 1;  //预留
		}Para;
	}regAddr100;

	union
	{
		uint16_t rState_Alarm1;//报警状态组1
		struct{
			uint8_t AlaFlag_LowLevel : 1;  //低液位下报警标志
			uint8_t AlaFlag_LowLevelUP : 1;  //低液位上报警标志
			uint8_t AlmFlag_LevelSensor : 1;  //液位开关异常
			uint8_t Slaver_AlaFlag_Press1 : 1;  //从机氟压1报警标志
			uint8_t AlaFlag_HighLevel : 1;  //高液位报警标志
			uint8_t bit5 : 1;  //预留
			uint8_t AlaFlag_HighTemp : 1;  //用户保护高温报警标志
			uint8_t AlaFlag_LowTemp : 1;  //用户保护低温报警标志
			uint8_t AlaFlag_HighTemp1 : 1;  //用户报警高温报警标志
			uint8_t AlaFlag_LowTemp1 : 1;  //用户报警低温报警标志
			uint8_t bit10 : 1;  //预留
			uint8_t bit11 : 1;  //预留
			uint8_t bit12 : 1;  //预留
			uint8_t bit13 : 1;  //预留
			uint8_t AlaFlag_PressOutSensor : 1;  //出液压力传感器异常标志
			uint8_t AlaFlag_HL_OutPress : 1;  //出液压力上限限值报警标志
		}Para;
	}regAddr101;

	union
	{
		uint16_t rState_Alarm2;//报警状态组2
		struct{
			uint8_t bit0 : 1;  //预留
			uint8_t gAlaFlag_LL_OutPress : 1;  //出液压力下限限值报警标志
			uint8_t bit2 : 1;  //预留
			uint8_t gAlaFlag_PressInSensor : 1;  //回液压力传感器异常标志
			uint8_t bit4 : 1;  //预留
			uint8_t bit5 : 1;  //预留
			uint8_t bit6 : 1;  //预留
			uint8_t bit7 : 1;  //预留
			uint8_t gAlaFlag_FlowSensor : 1;  //流量传感器异常标志
			uint8_t gAlaFlag_LowFlow : 1;  //低流量限值报警标志
			uint8_t gAlaFlag_FacLowFlow : 1;  //出液低流量故障标志
			uint8_t gAlaFlag_DISensor : 1;  //水质传感器异常标志
			uint8_t gAlaFlag_LL_DI : 1;  //水质超下限标志
			uint8_t bit13 : 1;  //预留
			uint8_t bit14 : 1;  //预留
			uint8_t gAlaFlag_TempSensor1 : 1;  //主温度传感器异常标志
		}Para;
	}regAddr102;

	union
	{
		uint16_t rState_Alarm3;//报警状态组3
		struct{
			uint8_t gAlaFlag_RefNormalLowPress : 1;  //氟压平衡低压报警
			uint8_t gAlaFlag_Communication : 1;  //通讯异常报警标志
			uint8_t gAlaFlag_RefHighPress : 1;  //氟路高压报警标志
			uint8_t gAlaFlag_RefLowPress : 1;  //氟路低压报警标志
			uint8_t bit4 : 1;  //预留
			uint8_t bit5 : 1;  //预留
			uint8_t gAlaFlag_PumpCom1 : 1;  //水泵通讯异常标志位
			uint8_t bit7 : 1;  //预留
			uint8_t gAlaFlag_CompMaint : 1;  //压缩机维护报警标志1
			uint8_t gAlaFlag_Comp2Maint : 1;  //压缩机维护报警标志2
			uint8_t gAlaFlag_InFlowSensor : 1;  //内循环低流量开关异常标志
			uint8_t gAlaFlag_OutFlowSensor : 1;  //冷冻水低流量开关异常标志
			uint8_t gAlaFlag_PumpMaint : 1;  //水泵维护报警标志1
			uint8_t gSlaver_AlaFlag_Press2 : 1;  //从机氟压2报警标志
			uint8_t gAlaFlag_FilterMaint : 1;  //过滤器维护报警标志
			uint8_t gAlaFlag_FacInLowFlow : 1;  //内循环低流量故障标志
		}Para;
	}regAddr103;

	union
	{

		uint16_t rState_Alarm4;//设备状态组4
		struct{
			uint8_t gAlaFlag_COWLowFlow : 1;  //冷却水低流量报警标志
			uint8_t gAlaFlag_TempSensor2 : 1;  //辅助温度传感器异常标志
			uint8_t gAlaFlag_EStop : 1;  //急停故障
			uint8_t gAlaFlag_ESwitch1 : 1;  //外部保护故障1
			uint8_t gAlaFlag_ESwitch2 : 1;  //外部保护故障2
			uint8_t gAlaFlag_OverFlow : 1;  //溢流报警标志
			uint8_t gAlaFlag_TempSensor3 : 1;  //环境温度传感器异常标志
			uint8_t gAlaFlag_FacHighTemp : 1;  //工厂保护高温故障标志
			uint8_t gAlaFlag_FacLowTemp : 1;  //工厂保护低温故障标志
			uint8_t gAlaFlag_RefHighPressSensor : 1;  //高压传感器异常标志
			uint8_t gAlaFlag_RefLowPressSensor : 1;  //低压传感器异常标志
			uint8_t gAlaFlag_RefPressSensor1 : 1;  //制冷回路1高低压传感器异常标志
			uint8_t gAlaFlag_RefPress1 : 1;  //制冷回路1高低压报警标志
			uint8_t gAlaFlag_RefPressSensor2 : 1;  //制冷回路2高低压传感器异常标志
			uint8_t gAlaFlag_RefPress2 : 1;  //制冷回路2高低压报警标志
			uint8_t gAlaFlag_FacLowFlow1 : 1;  //低流量限值故障标志
		}Para;
	}regAddr104;

	float mainTempDisplay;  //主温度显示值
	float subTempDisplay;  //辅温度显示值
	float ambTempDisplay;  //环境温度显示值
	float flowDisplay;  //流量显示值
	float outPressDisplay;  //出液压力显示值
	float inPressDisplay;  //回液压力显示值
	float gPV_DI;//水质实测值
	uint16_t compTime;  //压缩机启动倒计时
	//120
	float SV_Temp1;//主温度设定值
	float SV_Temp2;//辅温度设定值
	float SV_Flow;//流量设定值
	uint16_t regAddr126;
	uint16_t regAddr127;
	float SV_Press;//压力设定值
	uint16_t Type_FlowContr;//设备控流模式
	uint16_t Time_StopDelayPump;  //停泵延时时间
	uint16_t gAlaFlag_Num;  //故障与报警数量
	uint16_t Type_Display1;//主界面显示参数配置1  推荐使用触摸屏内部的标志
	uint16_t Type_Display2;//主界面显示参数配置2  推荐使用触摸屏内部的标志
	uint16_t gSV_Comp;  //变频器目标值
	uint16_t rFlag_Comp;  //变频器故障标志位
	uint16_t gState_Level;  //液位状态图标
	uint16_t gState_CoolHeater;  //制冷加热状态图标
	uint16_t regAddr139;
	//140
	union
	{
		uint16_t rState_Alarm5;//设备状态组5
		struct{
			uint8_t gAlaFlag_TempSensor_Tc1 : 1;  //冷凝温度传感器异常标志
			uint8_t gAlaFlag_TempSensor_Te1 : 1;  //蒸发温度传感器异常标志
			uint8_t gAlaFlag_TempSensor_To1 : 1;  //出气温度传感器异常标志
			uint8_t gAlaFlag_PressSensor_Tc1 : 1;  //冷凝压力传感器异常标志
			uint8_t gAlaFlag_PressSensor_Te1 : 1;  //蒸发压力传感器异常标志
			uint8_t bit5 : 1;  //预留
			uint8_t bit6 : 1;  //预留
			uint8_t bit7 : 1;  //预留
			uint8_t bit8 : 1;  //预留
			uint8_t bit9 : 1;  //预留
			uint8_t gAlaFlag_HL_Te1 : 1;  //蒸发温度上限限值报警标志
			uint8_t gAlaFlag_LL_Te1 : 1;  //蒸发温度下限限值报警标志
			uint8_t gAlaFlag_EEVCom : 1;  //电子膨胀阀通讯异常标志位
			uint8_t bit13 : 1;  //预留
			uint8_t gAlaFlag_HL_To1 : 1;  //出气温度上限限值报警标志
			uint8_t gSlaver_AlaFlag_PressSW2 : 1;  //从机氟压2开关报警标志
		}Para;
	}regAddr140;

	union
	{
		uint16_t rState_Alarm6;//设备状态组6
		struct{
			uint8_t gAlaFlag_SLCom : 1;  //声光驱动板通讯异常标志位
			uint8_t bit1 : 1;  //预留
			uint8_t bit2 : 1;  //预留
			uint8_t bit3 : 1;  //预留
			uint8_t bit4 : 1;  //预留
			uint8_t bit5 : 1;  //预留
			uint8_t bit6 : 1;  //预留
			uint8_t bit7 : 1;  //预留
			uint8_t bit8 : 1;  //预留
			uint8_t bit9 : 1;  //预留
			uint8_t bit10 : 1;  //预留
			uint8_t bit11 : 1;  //预留
			uint8_t bit12 : 1;  //预留
			uint8_t bit13 : 1;  //预留
			uint8_t bit14 : 1;  //预留
			uint8_t bit15 : 1;  //预留
		}Para;
	}regAddr141;

	uint16_t regAddr142;
	uint16_t regAddr143;
	uint16_t regAddr144;
	uint16_t gLoading;  //开机进度
	uint16_t gVersion;     //软件版本
	uint16_t regAddr147;
	uint16_t regAddr148;
	uint16_t regAddr149;
	float gProgram_SP;//程序目标温度
	uint16_t gProgram_StableTime;//程序目标维持时长
	uint16_t gProgram_Step;//程序当前序号
	uint16_t gProgram_Time_ThisStep;//程序当前时间设置
	uint16_t ES_Program_Cycle;//程序循环使能
	uint16_t ES_ProTempCtrl;  //程序控温使能标志
	uint16_t regAddr157;
	uint16_t regAddr158;
	uint16_t regAddr159;
	//160
	uint16_t Brightness_LED;//灯带亮度
	uint16_t Volume_Speaker;//扬声器音量
	uint16_t HMI_Type; // 屏幕类型 0x0043昆仑通泰4.3寸  0x1043自研4.3  0x0070昆仑通态7寸  0x0100昆仑通态10寸
	uint16_t regAddr163_178[16];
	uint16_t ES_IO_Digital;//数字量输入输出使能
	//180
	uint16_t Digital_IO_Dispose;//数字量输入输出配置
	uint16_t Alarm_Out_Dispose1;//报警输出1配置
	uint16_t Alarm_Out_Dispose2;//报警输出2配置
	uint16_t Maintain_Out_Dispose;//维护输出配置
	uint16_t Digital_In1_Definition;//数字量输入1定义  DIN6
	uint16_t Digital_In2_Definition;//数字量输入2定义  DIN7
	uint16_t regAddr186;
	uint16_t regAddr187;
	uint16_t Digital_Out1_Definition;//数字量输出1定义  KA1
	uint16_t Digital_Out2_Definition;//数字量输出2定义  KA2
	uint16_t regAddr190_199[10];
	//200
	uint16_t Type_Start;//启动模式设置
	uint16_t Type_TempContr;//控温模式设置
	uint16_t regAddr202;
	uint16_t Type_Compensate;//补偿模式设置
	uint16_t Type_Lock;
	uint16_t Unit_Temp;//温度单位设定
	uint16_t Unit_Flow;//流量单位设定
	uint16_t Unit_Press;//压力单位设定
	uint16_t Unit_DI;//水质单位设定
	uint16_t regAddr209;
	uint16_t gRunTime_RetunFluid;//气吹排液计时
	uint16_t gRunTime_RetunAir;//气吹排空计时
	uint16_t Time_RetunFluid;//气吹排液时长设置
	uint16_t Time_RetunAir;//气吹排空时长设置
	uint16_t State_Return;//气吹启停设置  不用
	float SV_Compensate;//手动温度补偿设定值
	float SV_AutoCompensate;//自动温度补偿设定值
	uint16_t regAddr219;
	//220
	uint16_t Type_Communication;//通讯模式选择
	uint16_t RS485_Addr;//通讯485地址
	uint16_t RS485_Speed;//通讯485速率
	uint16_t RS485_State;//通讯485状态
	uint16_t regAddr224;
	uint16_t regAddr225;
	uint16_t regAddr226;
	uint16_t regAddr227;
	uint16_t regAddr228;
	uint16_t regAddr229;
	uint16_t gRestoryUP;//恢复用户默认设置
	uint16_t gSaveUP;//保存用户默认设置
	uint16_t gRestoryFP;//恢复工厂出厂设置
	uint16_t gSaveFP;//保存工厂出厂设置
	uint16_t Type_HMI;  //语言模式  推荐使用触摸屏内部的标志
	uint16_t regAddr235;
	float Alarm_HL_Temp1;//报警温度上限1
	float Alarm_LL_Temp1;//报警温度下限1
	//240
	float FLT_HL_Temp1;//保护温度上限
	float FLT_LL_Temp1;//保护温度下限
	uint16_t AlarmType_TempHL;//报警温度上限检测模式
	uint16_t AlarmType_TempLL;//报警温度下限检测模式
	uint16_t AlarmType_Temp;//报警温度检测模式
	uint16_t regAddr247_259[13];
	//260
	float Alarm_LL_Flow;//报警流量下限
	uint16_t regAddr262;
	uint16_t regAddr263;
	uint16_t AlarmType_FlowLL;//报警流量下限检测模式
	uint16_t AlarmType_FlowSensor;//报警流量传感器检测模式
	uint16_t regAddr266;
	uint16_t regAddr267;
	uint16_t AlarmType_OverFlow;  //溢流开关检测模式
	uint16_t regAddr269;
	float Alarm_HL_Press;  //报警出液压力上限
	float Alarm_LL_Press;  //报警出液压力下限
	uint16_t AlarmType_PressHL;  //报警压力上限检测模式
	uint16_t AlarmType_PressLL;  //报警压力下限检测模式
	uint16_t AlarmType_OutPressSensor;  //报警出液压力传感器检测模式
	uint16_t AlarmType_InPressSensor;  //报警回液压力传感器检测模式
	uint16_t regAddr278;
	uint16_t regAddr279;
	//280
	float Alarm_LL_DI;  //水质报警下限
	uint16_t AlarmType_DISensor;  //水质传感器报警检测模式
	uint16_t regAddr283;
	uint16_t regAddr284;
	uint16_t AlarmType_Maint;  //维护报警模式
	uint16_t gRunTime_Pump;    //维护水泵运行时长
	uint16_t gRunTime_Comp;    //维护压机1运行时长
	uint16_t gRunTime_Filter;//维护过滤器运行时长
	uint16_t CycleTime_Filter;//维护过滤器周期
	uint16_t gRunTime_Comp2;//维护压机2运行时长
	uint16_t regAddr291;
	uint16_t regAddr292;
	uint16_t regAddr293;
	uint16_t regAddr294;
	uint16_t rMaintFlag_Reset;  //设备维护复位组  bit0:维护水泵运行时长  bit1:维护压缩机1运行时长  bit2:维护过滤器运行时长  bit3:维护压缩机2运行时长
	uint16_t regAddr296;
	uint16_t regAddr297;
	uint16_t regAddr298;
	uint16_t regAddr299;
	//300
	float CaliTemp1_K;//温度校准1_K值
	float CaliTemp1_B;//温度校准1_B值
	float TempPID_P; //控温_P2值
	float TempPID_I; //控温_I2值
	float TempPID_D; //控温_D2值
	float CaliFlow_K;  //流量校准_K值
	float CaliFlow_B;  //流量校准_B值
	float FlowPID_P; //控流_P值
	float FlowPID_I; //控流_I值
	float FlowPID_D; //控流_D值
	//320
	float CaliTemp2_K;//温度校准2_K值
	float CaliTemp2_B;//温度校准2_B值
	float CaliTemp3_K;//温度校准3_K值
	float CaliTemp3_B;//温度校准3_B值
	uint16_t SV_TimeCompensate;//补偿温度自动计算时间系数
	float SV_AccuracyCompensate;//补偿温度调节死区
	uint16_t regAddr331;
	float TempPID_P1; //控温_P1值
	float TempPID_I1; //控温_I1值
	float TempPID_D1; //控温_D1值
	float TempPID_P3; //控温_P3值
	//340
	float TempPID_I3; //控温_I3值
	float TempPID_D3; //控温_D3值
	float CaliPress_K1;  //出液压力校准_K1值
	float CaliPress_B1;  //出液压力校准_B1值
	float CaliPress_K2;  //出液压力校准_K2值
	float CaliPress_B2;  //出液压力校准_B2值
	float CaliDI_K;  //水质校准_K值
	float CaliDI_B;  //水质校准_B值
	uint16_t regAddr346;
	uint16_t regAddr347;
	uint16_t regAddr348;
	uint16_t regAddr349;
	//360
	uint16_t regAddr360_379[20];
	//380
	uint16_t regAddr380_399[20];
	//400
	uint16_t regAddr400_419[20];
	//420
	uint16_t regAddr420_439[20];
	//440
	uint16_t regAddr440_459[20];
	//460
	uint16_t regAddr460_479[20];
	//480
	uint16_t regAddr480_499[20];
	//500
	float gUpDownData2EEV1;  //电子膨胀阀1开度
	uint16_t gUpDownData1EEV1;  //电子膨胀阀1百分比
	uint16_t gEnableDataEEV1;  //电子膨胀阀1确定
	float gUpDownData2EEV2;  //电子膨胀阀2开度
	uint16_t gUpDownData1EEV2;  //电子膨胀阀2百分比
	uint16_t gEnableDataEEV2;  //电子膨胀阀2确定
	float gUpDownData2EEV3;  //电子膨胀阀3开度
	uint16_t gUpDownData1EEV3;  //电子膨胀阀3百分比
	uint16_t gEnableDataEEV3;  //电子膨胀阀3确定
	float gSlaver_Temp1;  //从机温度输入1
	float gSlaver_Temp2;  //从机温度输入2
	float gSlaver_Temp3;  //从机温度输入3
	float gSlaver_Press1;  //从机压力1输入
	//520
	float gSlaver_Press2;  //从机压力2输入
	float gSlaver_Press_Temp1;  //从机压力1饱和温度
	float gSlaver_Superhest_Press1;  //从机压力1过热度
	uint16_t gSV_Hz_COMP ;//压缩机手动设定频率
	uint16_t gFlag_CompAlarm;//压缩机报警标志位
	float gSV_Superhest1; //过热度设定值1
	float Slaver_SVPressRadio;  //高低压比设置值
	uint16_t regAddr532_539[8];
	//540
	uint16_t regAddr540;
	uint16_t regAddr541;
	float gSlaver_Press_Temp2;  //从机压力2饱和温度
	float gSlaver_Supercold_Press2;  //从机压力2过冷度
	uint16_t gFlag_CompAlarm2;//压缩机报警标志位2
	uint16_t gSlaver_Version;  //D4306软件版本
	uint16_t gSlaver_Ref;  //从机冷媒种类
	uint16_t gFlag_Auto;  //电子膨胀阀控制方式标志
	uint16_t regAddr550;
};
#pragma pack()

/* 输出状态 */
typedef enum
{
	OFF = 0U,
	ON,
	TOGGLE,
	STATE_NO_CONFIG
}equState_t;

/* 界面名称 */
enum Languages
{
	Ch,  //中文
	En,  //英文
};

/* 显示参数库-触摸屏辅助显示标志位结构体（保存） */
struct dispAuxiliary
{
	uint8_t leftValueFlag;      //左下角显示值标志位
	uint8_t rightValueFlag;     //右下角显示值标志位
	uint16_t dispPrec;          //温度显示精度
	enum Languages typeLanguage;//语种
	uint16_t esBoardSound;      //主板扬声器使能
	uint16_t esInfo;            //厂家信息显示使能
	char deviceModel[50];       //设备型号
	uint16_t lockModeFlag;		//锁屏模式flag  0 关  1 开
	uint8_t breathPlate;		//息屏标志
	uint16_t breathTime;		//息屏时间
	uint8_t tempPrecFlag;		//温度精度
	tableRecort_t taUser_table[8];  // 程序控温数值
};

/* 显示参数库-触摸屏系统运行参数结构体（保存） */
struct dispSysteam
{
	Time_TypeDef clockTime;  //系统时间
	uint8_t bringhtNess;  //背光亮度
};

/* 显示参数库-触摸屏系统设置输入参数结构体（不保存） */
struct setSysTime
{
	Time_TypeDef clockSetTime;  //设置输入系统时间
};

struct dispLanguages
{
	char* set;  //设置
	char* menu;  //菜单
	char* curve;  //曲线
	char* run;  //运行
	char* stop;  //停止
	char* mess;  //信息
	char* Return;  //返回
	char* switchText;  //切换显示界面标题
	char* left;  //左
	char* right;  //右
	char* null;  //空
	char* PV_F;  //实测流量
	char* PV_P1;  //出液压力
	char* PV_T2;  //辅助温度
	char* PV_T3;  //环境温度
	char* PV_WQ;  //实测水质
	char* PV_P2;  //回液压力
	char* SV_F;  //设置流量
	char* SV_P1;  //设置压力
	char* confirm;  //确认
	char* cancel;  //取消
	char* runText;  //启动确认文本
	char* stopText;  //停止确认文本
	char* num;  //序号
	char* time;  //时间：
	char* temp;  //温度
	char* Flow;  //流量
	char* press;  //压力
	char* dataExport;  //数据导出？
	char* exporting;  //导出中...
	char* exportSuccessful;  //导出成功！
	char* exportFailed;  //导出失败！
	char* function;  //功能设置
	char* display;  //显示设置
	char* alarmSet;  //报警设置
	char* commu;  //通讯设置
	char* advanced;  //高级设置
	char* about;  //关于本机
	char* fac;  //工厂参数设置
	char* mode;  //模式选择
	char* air;  //气吹回液
	char* program;  //程序控温
	char* startMode;  //启动模式
	char* flowMode;  //控流模式
	char* lock;    //锁屏模式
	char* manual;  //手动
	char* Auto;  //自动
	char* flowCtrl;  //流量控制
	char* pressCtrl;  //压力控制
	char* off;  //关
	char* on;  //开
	char* drainTime;  //排液时长
	char* dryingTime;  //吹干时长
	char* start;  //启动
	char* determineText;  //确定执行此操作文本
	char* staTemp;  //稳定温度
	char* staTime;  //稳定时间
	char* loop;  //程序循环使能
	char* language;  //语言选择
	char* tempUnit;  //温度单位
	char* tempPrec;  //温度精度
	char* flowUnit;  //流量单位
	char* pressUnit;  //压力单位
	char* setTime;  //系统时间:
	char* setLight;  //亮度调节:
	char* ch;  //中文
	char* en;  //英文
	char* tempAlarm;  //温度报警
	char* flowAlarm;  //流量报警
	char* pressureAlarm;  //压力报警
	char* waterAlarm;  //水质报警
	char* maintenAlarm;  //维护报警
	char* otherAlarm;  //其它报警
	char* next;  //下一项
	char* previous;  //上一项
	char* modeTest;  //检测模式：
	char* upper;  //保护上限：
	char* lowest;  //保护下限：
	char* alarmUpper;  //报警上限：
	char* alarmLower;  //报警下限：
	char* running;  //运行后
	char* power;  //上电后
	char* close;  //关闭
	char* alarm;  //报警
	char* fault;  //故障
	char* alarmLevel;  //报警级别：
	char* lowestFlow;  //流量下限：
	char* sensor;  //传感器异常：
	char* PressUpper;  //压力上限：
	char* PressLowest;  //压力下限：
	char* waterQuality;  //水质实测：
	char* alarmValue;  //报警值：
	char* ctrlRange;  //控制范围：
	char* pump;  //循环泵：
	char* comp;  //压缩机：
	char* filter;  //过滤器：
	char* comp2;  //压缩机2：
	char* overFlowLevel;  //泄漏报警级别：
	char* serial;  //串行通讯
	char* parallel;  //并行通讯
	char* commMode;  //通讯模式：
	char* addr;  //本机地址：
	char* rate;  //通讯速率：
	char* status;  //通讯状态：
	char* port;  //通讯端口：
	char* termType;  //端子类型:
	char* trigSigl;  //触发信号:
	char* termDef;  //端子定义:
	char* local;  //本地
	char* level;  //电平
	char* edge;  //边沿
	char* DI12Option;  //00-关闭\n01-系统启停\n02-报警复位\n03-外部保护开关\n04-内外循环切换
	char* minalDef;	    // 配置
	char* outConfig;	// 输出配置
	char* DO12Option;  //01-运行状态\n02-数字控制状态\n03-故障\n04-警告\n05-综合报警\n06-维护提示\n07-选择的报警\n08-选择的维护提示
	char* sensCali;  //传感器校准
	char* pidTuning;  //PID整定
	char* autoCompens;  //自动补偿
	char* reserve;  //预留
	char* VLSet;  //声光设置
	char* mainTemp;  //主温度校准：
	char* auxTemp;  //辅助温度校准：
	char* ambTemp;  //环境温度校准：
	char* criWater;  //循环水质校准：
	char* flow;  //流量校准：
	char* outletPress;  //出液压力校准：
	char* returnPress;  //回液压力校准：
	char* tempTuning;  //控温整定：
	char* flowTuning;  //控流整定：
	char* compensMode;  //补偿模式：
	char* compensTemp;  //补偿温度：
	char* autoCompensText1;  //补偿温度自动计算时间系数：
	char* autoCompensText2;  //补偿温度自动计算调节死区：
	char* manualInput;  //手动输入
	char* autoCount;  //自动计算
	char* brightness;  //灯带亮度
	char* volume;  //扬声器音量
	char* tempRange;  //控温范围：
	char* deviceModel;  //设备型号：
	char* runtime;  //运行时长：
	char* man;  //生产厂家：  北京同洲维普科技有限公司
	char* version;  //软件版本：
	char* restore;  //恢复出厂

	char* factRnge;  //保护范围：
	char* ctrlRnge;  //控温范围：
	char* secondaryTemp;  //辅温度传感器使能：
	char* ambientTemp;  //环境温度传感器使能：
	char* heating;  //加热模式：
	char* preheat;  //预加热
	char* thermal;  //热控温
	char* ctrl;  //控制模式：
	char* protTime;  //压机保护时长：
	char* compHys;  //压机启停回差：
	char* compStages;  //压机控制级数：
	char* on_off;  //启停式
	char* single;  //单机
	char* Double;  //双机
	char* ctrlMode;  //控制模式：
	char* ref;  //制冷阀：
	char* byp;  //旁通阀：
	char* highp;  //冷凝压力：
	char* satt;  //饱和温度：
	char* condt;  //冷凝温度：
	char* sct;  //过冷度：
	char* lowp;  //蒸发压力：
	char* evat;  //蒸发温度：
	char* sht;   //过热度：
	char* outt;  //压机出气温度：
	char* sv;  //设置温度：
	char* auxEnable;  //辅助阀使能：
	char* aux;  //辅助阀：
	char* lowt2;  //下限温度2：
	char* lowt1;  //下限温度1：
	char* hight1;  //上限温度1：
	char* hight2;  //上限温度2：
	char* send;  //发送

	char* sysTime;  // 系统时间
	char* setSystemTime;	// 设置系统时间
	char* tempAlarm_H;	// 高温报警
	char* tempAlarm_L;	// 低温报警
	char* pressAlarm_H;	// 高压报警
	char* pressAlarm_L;	// 低压报警
	char* flowAlarm_L;	// 低流量报警
	char* pumpRemain;	// 水泵维护
	char* filterRemian; // 过滤器维护
	char* compressRemain; // 压缩机维护
	char* dustRemain;	// 防尘维护
	char* fanRemain;    // 风机维护

	char* none;  //没有
	char* with;  //有
	char* lowEvaSetMode;  //蒸发压力下限设置模式：
	char* lowEva;  //蒸发压力下限：
	char* evaConfirmTime;  //蒸发压力确认时间：
	char* evaT;  //蒸发温度报警范围：
	char* compTempHigh;  //压机出气温度上限：
	char* condPressHigh;  //冷凝压力上限值：
	char* condConfirmTime;  //冷凝压力确认时间：
	char* refNormLowPress;  //氟压平衡低压报警值：
	char* highPressSw;  //高压开关：
	char* highPressSe;  //高压传感器：
	char* condTempSe;  //冷凝温度：
	char* outletTempSe;  //出气温度：
	char* evaTempSe;  //蒸发温度：
	char* not;  //不检测
	char* detect;  //检测
	char* flowSe;  //传感器：
	char* flowCt;  //执行器：
	char* flowRnge;  //测流范围：
	char* ctrlFlowRnge;  //控流范围：
	char* pluseFactor;  //脉冲系数：
	char* maxFrequency;  //最大操作频率：
	char* minFrequency;  //最小操作频率：
	char* targetValue;  //变频器目标值：
	char* analog;  //模拟信号
	char* pluse;  //脉冲信号
	char* comm;  //通讯信号

	char* AlarmLevel;   // 报警级别
	char* flowDown;		// 流量下线
	char* sensorErr;	// 传感器异常
	char* alarmUp;		// 报警上限
	char* alarmDown;	// 报警下限
	char* waterMeasure; // 水质实测
	char* AlarmValue;	// 报警值
	char* ctrlTemp;		// 控温范围
	char* cyclcPump;	// 循环泵
	char* compress;		// 压缩机
	char* Filter;		// 过滤器
	char* compress2;	// 压缩机2
	char* outAlarmLevel;// 泄露报警级别
	char* reset;		// 复位

	char* outlet;  //出液压力：
	char* liquid;  //回液压力：
	char* pressRnge;  //测压范围：
	char* pressCt;  //执行器：
	char* ctrlPressRnge;  //控制范围：
	char* factInput1;  //工厂输入1：
	char* factInput2;  //工厂输入2：
	char* factInput3;  //工厂输入3：
	char* factInput4;  //工厂输入4：
	char* water;  //水质检测：
	char* cooling;  //冷却水检测：
	char* lowFType;  //低流量选择：
	char* factDropdownInput1;  //00-关闭\n01-氟路高压开关\n02-泄漏液位开关\n03-压机1氟压开关\n04-低液位开关上
	char* factDropdownInput2;  //00-关闭\n01-氟路低压开关\n02-急停开关\n03-压机2氟压开关\n04-泄漏液位开关
	char* factDropdownInput3;  //00-关闭\n01-出液流量开关\n02-高液位开关
	char* factDropdownInput4;  //00-关闭\n01-泄漏液位开关
	char* lowFTypeDropdown;  //00-关闭\n01-内循环检测\n02-低流量检测
	char* factOut1;  //工厂输出1：
	char* factOut2;  //工厂输出2：
	char* HTAV;  //高温阀：
	char* LTAV;  //低温阀：
	char* tOff;  //℃ 关
	char* tOn;  //℃ 开
	char* factDropdownOut1;  //00-关闭\n01-高温辅助阀\n02-低温辅助阀\n03-内外循环阀\n04-气吹回液阀\n05-水质电磁阀\n06-运行状态\n07-报警提示器
	char* factDropdownOut2;  //00-关闭\n01-高温辅助阀\n02-低温辅助阀\n03-内外循环阀\n04-气吹回液阀\n05-水质电磁阀\n06-报警提示器
	char* Detect;  //检测延时：
	char* comf;  //确认延时：
	char* Temp;  //温度：
	char* flow_Prs;  //流量/压力：
	char* highTemp;  //保护温度上限：
	char* lowTemp;  //保护温度下限：
	char* lowFlow;  //保护流量下限：
	char* lowLevel;  //水箱液位下限：
	char* light;  //声光功能：
	char* ledSum;  //灯珠数量：
	char* sound;  //扬声器：
	char* device;  //设备型号：
	char* manuInfo;  //厂家信息：
	char* refType;  //冷媒种类：
	char* commProtocol;  //通讯协议：
	char* no;  //不显示
	char* yes;  //显示
	char* saveUser;  //保存用户参数
	char* saveFac;  //保存工厂参数
	char* restFac;  //恢复工厂参数
	char* TEmp;  //温度相关
	char* Ref;  //氟路相关
	char* eev;  //电子膨胀阀
	char* refAlarm;  //氟路报警
	char* FLow;  //流量相关
	char* Press;  //压力相关
	char* check;  //检测配置
	char* por;  //端口配置
	char* Alarm;  //报警配置
	char* Light;  //声光配置
	char* info;  //设备信息
	char* infoTttle_ID;  //信息表头-ID
	char* infoTttle_extantText;  //信息表头-实时文本内容
	char* infoTttle_historyText;  //信息表头-历史文本内容
	char* infoTttle_ariseTime;  //信息表头-触发时间
	char* infoTttle_duration;  //信息表头-持续时间
	char* infoTttle_type;  //信息表头-信息类型
	char* soundOn;	//蜂鸣器开
	char* soundOff;	//蜂鸣器关
	char* extantInfo; //实时信息
	char* historyInfo;	//历史信息
	char* resetInfo;	//复位信息
	char* moreInfo;	//更多信息
	char* loginText;	//此界面需要登录后才能进行操作，\n如需登录请在下方输入登录密码。
	char* code;	//密码：
	char* password;	//请输入密码......
	char* passwordErrorText;	//密码错误，请重新输入密码。
	char* ok;	//确定
	char* abolish;	//取消
	char* timeConfig;     // 时间设置
	char* timeCont;		  // 是否修改时间
	char* inputErr;		  // 输入错误
	char* errPrompt;	  // 错误提示
	char* systemSet;	  // 系统设置
	char* ctrlTempID;	  // 控温ID
	char* stableTemp;	  // 稳定温度
	char* stableTime;	  // 稳定时间
	char* programLoop;	  // 程序循环使能
	char* DialogTitle;	  // 确认对话框
	char* DialogCont;	  // 确定执行此操作
	char* autoLock;		  // 息屏时间
	char* lockTimeOption; // 息屏选项
	char* levelSelect;	 	    // 液位开关选择
	char* levelSelectDropdown;  //00-单浮子\n01-双浮子\n02-三浮子
	char* sensorSignal;	  // 传感器信号类型
	char* sensorSignalDropdown;  //传感器信号类型下拉框
	char* liquidEvapotDiff; // 液温与蒸发压力差值
	char* refriBypassOpen;	// 制冷阀与旁通阀开度和
	char* heartSwitch;		// 加热器开关
	char* flowAlarmLL;		// 流量报警下限
	char* pressAlarmLL;     // 压力报警下限
	char* clearHistory;     // 清除历史报警
	char* clearTime;        // 清除历史报警
};

/* 通讯服务参数库-触摸屏辅助通讯标志位结构体（不保存） */
struct commAuxiliary
{
	uint8_t flagWrite;  //通讯写入请求标志位
	uint16_t commAddr;  //通讯写入首地址
	uint8_t sumReg;     //写入寄存器数量
	uint16_t* ramAddr;  //内存变量地址
};

extern struct dispLanguages dispText[2];

/* 文本框数据结构体 */
typedef struct textareaUserDataStr{
	struct dataStr
	{
		kb_userData_t userData;
//		void* value;
		int16_t min;
		int16_t max;
	}data;
	char* type;
	lv_coord_t width;
	lv_coord_t height;
	lv_coord_t pos_x;
	lv_coord_t pos_y;
	uint32_t max_length;
	char* accepted_chars;
	bool one_line;
	bool cursor_click_pos;
}ta_userData_t;

/* 登录用户名 */
enum userName
{
	NONE = 0U,
	ADMIN,
	PCB,
	USER
};

/* 登录信息结构体 */
struct login
{
	enum userName loginUser;  //此次登录用户名
	char loginPassword[20];  //登录密码
};

/* 界面构建相关变量（不保存） */
extern struct display disp;   //显示界面状态
extern struct title titlebar; //标题栏结构体
extern struct chartData curveData[CURVEDATASUM];  //曲线显示数据1

/* 界面显示相关数据 */
extern struct boardSysteam FP;   //通讯参数库-控制主板工厂参数（不保存）
extern struct boardService UP;   //通讯参数库-控制主板用户参数/运行状态（不保存）
extern struct dispAuxiliary DA;  //显示参数库-触摸屏辅助显示标志位（保存）
extern struct dispSysteam DS;    //显示参数库-触摸屏系统运行参数（保存）
extern struct setSysTime SST;    //显示参数库-触摸屏系统设置输入参数（不保存）
extern struct chartData CD;      //当前保存的曲线数据
extern struct commAuxiliary CA;  //通讯服务参数库-触摸屏辅助通讯标志位（不保存）
extern uint8_t loadingValue;     //加载进度值

/* 显示界面构建共用（不保存） */
extern enum interface returnDisplay;  // 返回显示界面标志
extern enum interface display;  //显示界面标志
extern lv_obj_t* parentObj_img;  //父对象
extern lv_obj_t* parentObj;  //父对象
extern lv_obj_t* parentObj1;  //父对象1
extern lv_obj_t* parentObj2;  //父对象2
extern lv_obj_t* parentObj3;  //父对象3
extern lv_obj_t* loginObj;  //登录界面父对象
extern lv_obj_t* passwordErrorObj;  //密码错误界面父对象
extern lv_obj_t* list;  //列表
extern lv_obj_t* cont;  //容器
extern lv_timer_t* UI_display_timer;  //界面显示定时器
extern lv_timer_t* UI_display_titlebar_timer;  // 标题栏显示定时器
extern lv_style_t style_parentObj; //定义对象样式
extern lv_style_t style_parentObj1; //定义对象样式
extern lv_style_t style_btn1;   //定义按钮样式1  菜单、曲线、运行
extern lv_style_t style_btn2;   //定义按钮样式2  报警消息
extern lv_style_t style_btn3;   //定义按钮样式1  菜单、曲线、运行
extern lv_style_t style_btn4;   //定义按钮样式2  报警消息
extern lv_style_t style_btn5;   //定义选项卡按钮样式
extern lv_style_t style_btn6; //定义保存按钮样式
extern lv_style_t style_btn7; //定义曲线切换按钮样式
extern lv_style_t style_label1; //定义标签样式1  报警消息数量
extern lv_style_t style_label2; //定义标签样式2  左下选择窗口选项选中标签
extern lv_style_t style_label3; //定义标签样式3  左下选择窗口选项未选中标签
extern lv_style_t style_label4; //定义标签样式  菜单窗口切换标签  功能设置、显示设置...
extern lv_style_t style_list1; //定义列表样式1
extern lv_style_t style_cont1; //定义容器样式1
/* 显示界面脚本共用（不保存） */
//extern uint8_t progressDelay;  //进度延时

/* USB和NAND */
extern struct chartData g_packBuff[10*1024];  //分包缓冲
extern uint8_t g_imgBuff[5][1000000];         //图片数组
extern uint8_t g_icoBuff[16][1024*100];               //icon
extern uint8_t g_fontBuff[3000000];        //字库数组

extern lv_img_dsc_t dsc_ico_buff[16];	// 所有图标结构体
extern uint8_t program_lastStep;
extern lv_img_dsc_t dsc_img_buff[5];     // 存储图片信息结构体

extern int g_packRW;			   // 每次分包的指针偏移
extern int g_packCount;			   // 每次分包的记录数量
extern uint8_t g_overWritten;	   // 是否覆盖文件
extern uint8_t g_packReadOK;	   // 分包结束标志
extern uint8_t g_mountNand_flag;  // 0:未挂载    1:挂载
extern uint8_t g_mountUSB_flag;   // 0:未挂载    1:挂载   2:未检测到USB
extern uint8_t secondFlag;		  // 1秒倒计时
extern uint8_t g_loadFont;		   // 加载字体
extern uint8_t g_updateScreenFlag;	   // 重新读取屏幕参数

extern RW_State g_RW_State;		   // 读写状态
/* 链表结构体及实例化 */
extern uint16_t * infoGroup[INFO_GROUP_QTY];/* 信息组 */
extern listNode_t * listNode_extantInfo;/* 实时信息链表 */
extern listNode_t * listNode_historyInfo;/* 历史信息链表 */
extern uint8_t historyInfoNodeQty;/* 历史信息链表节点数量 */
#define HISTORY_INFO_DISP_QTY_MAX	50/* 历史信息显示最多数量 */

/* 登录信息 */
extern struct login loginInfo;   //登录信息

/* 共用样式、创建函数 */
void init_displsy_style(void);  //对象样式初始化
void init_btn_style1(void);  //按钮样式初始化
void init_label_style1(void);  //标签样式初始化
void init_list_style1(void);  //列表样式初始化
void init_cont_style1(void);  //容器样式初始化
void keyboard_create_char(kb_userData_t* result);										// 创建字符键盘
void keyboard_create_float(int minVal, int maxVal, kb_userData_t * result);				// 创建浮点数字键盘
void keyboard_create_int(int minVal, int maxVal, kb_userData_t * result);				// 创建整形数字键盘
void login_create(void);  //登录窗口创建
void login_delete(void);  //登录窗口删除
void passwordError_create(void);  //密码错误窗口创建
void passwordError_delete(void);  //密码错误窗口删除
uint8_t type_is_float(char* type);/* 判断类型是否为浮点数 */
void textarea_clicked_cb(lv_event_t * e);/* 文本框按下回调函数 */
void textarea_create_by(lv_obj_t* cont, ta_userData_t* ta);/* 文本框创建函数 */
uint8_t send_aux(void* valve);  //发送整型数据辅助函数
uint8_t send_aux_float(void* valve);   // 发送浮点型数据辅助函数
void init_img(void);		 //初始化图片素材
void programCtrlTemp_refresh(void);		// 刷新程序控温记录
void disable_child_obj(lv_obj_t *parent, lv_obj_class_t * class);  // 禁用所有子对象
void enable_child_obj(lv_obj_t *parent, lv_obj_class_t * class);   // 使能所有子对象
void update_screen_param(void);

#endif
